#pragma once

#include "limbo/ip/ip_context.hpp"
#include "types.h"

namespace limbo::icmp {

template <typename State> struct IcmpContext {
  using ContextState = State;
  using LowerContext = typename State::LowerState::Context;
  Type type;
  Code code;
  LowerContext *ip_context;
};

template <typename State>
inline auto *get_lower_context(const IcmpContext<State> &ctx) {
  return ctx.ip_context;
}

} // namespace limbo::icmp
